home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Games Machine 76
/
XENIATGM66.iso
/
Indiana Jones
/
Indiana Jones.exe
/
RESOURCE
/
PREVIEW.GOB
/
cog_sol_chaseupper.cog
< prev
next >
Wrap
Text File
|
1999-11-15
|
11KB
|
342 lines
# Jones 3D Cog Script
#
# SOL_ChaseUpper.cog
#
# Triggered by entering upper oil shed room.
#
# [TRM]
#
# (C) 1999 LucasArts Entertainment Co. All Rights Reserved
# ========================================================================================
symbols
message startup
message user0
message user1
message user2
message entered
# ** Local Things **
thing player local
thing comCar
thing car local
# ** Ghost Objects **
thing ghost_Com1
thing ghost_Com2
# ** Oil Shed Commies **
thing os_Com1 local
thing os_Com2 local
# ** Cameras **
thing os_cam1
thing os_cam2
thing os_cam3
thing ec_cam1
thing rp_Cam1
thing rp_Cam2
thing rp_Cam3
# ** Camera Targets **
thing os_CamTarg1
thing os_CamTarg2
thing os_CamTarg3
thing ec_CamTarg1
# ** AI Targets **
thing os_Com1Targ
thing os_Com2Targ
thing os_comTempTarg
# ** Misc. Things **
thing chase_Exp1
thing chase_Exp2
thing teleport1
# ** Player Trigger Surfaces **
surface trig_Upper # start cutscene
surface trig_CamCut1
surface trig_CamCut2
surface trig_CamCut3
surface trig_Reflec1
surface trig_Reflec2
surface trig_Reflec3
surface trig_Ready
# ** Misc. surfaces **
surface switch3
# ** Templates **
template tpl_Com1=khaki_mauser local
template tpl_Com2=khaki_mauser local
template tpl_Explode=+dummy_bazooka local
# ** music **
sound mus_ComEnt=mus_sol_minechase.wav local
# ** types **
AI ai_sniper=com_2Hsniper.ai local
# ** COGs **
cog os_mineDoors1
cog chaseBlowIt
cog chase1doors
cog camReflec
cog chaseLower
cog comControl
# ** Ints **
int curCam local
int ready=0 local
int done=0 local
int secondLap=0 local
int ready=0 local
int blownUp=0 local
end
# ========================================================================================
code
startup:
# hide comCar
SetThingFlags(comCar, 0x80000);
return;
# ========================================================================================
user0:
blownUp = 1;
return;
# ========================================================================================
user1:
done = 0;
return;
# ========================================================================================
user2:
secondLap = 1;
return;
# ========================================================================================
entered:
player = GetLocalPlayerThing();
curCam = GetCurrentCamera();
car = GetSourceRef();
if((BitTest(GetPhysicsFlags(car), 0x01000000)) && (blownUp == 0))
{
# need to take one more lap
if((done == 0) && (secondLap == 0) && (ready == 0))
{
if(GetSenderRef() == trig_Upper)
{
secondLap = 1;
# disable camReflec temporarily
SendMessage(camReflec, user0);
# tell chaseLower that secondLap = 1
SendMessage(chaseLower, user2);
# tell comControl to show switch4 and switch5 commies
SendMessage(comControl, user0);
}
}
else if((ready == 0) && (done == 0) && (secondLap == 1))
{
if(GetSenderRef() == trig_Ready)
{
ready = 1;
}
}
else if((done == 0) && (secondLap == 1) && (ready == 1) && (GetWallCel(switch3) == 1))
{
if(GetSenderRef() == trig_Reflec1)
{
# disable player and start cutscene
StartCutscene(0);
SetActorFlags(player, 0x200000);
# Cut to rp_Cam1
SetCameraFocus(2, rp_Cam1);
SetCameraSecondaryFocus(2, player);
SetCurrentCamera(2);
}
else if(GetSenderRef() == trig_Reflec2)
{
# Cut to rp_Cam2
SetCameraFocus(2, rp_Cam2);
SetCameraSecondaryFocus(2, player);
SetCurrentCamera(2);
}
else if(GetSenderRef() == trig_Reflec3)
{
# Cut to rp_Cam3
SetCameraFocus(2, rp_Cam3);
SetCameraSecondaryFocus(2, player);
SetCurrentCamera(2);
}
# fire up the main cutscene
else if(GetSenderRef() == trig_Upper)
{
# temporary spot for holding mine doors open
SendMessage(chase1doors, user2);
# tell chaseBlowIt that sender is comCar_Upper
SendMessage(chaseBlowIt, user0);
# enable chaseBlowIt
SendMessage(chaseBlowIt, user1);
# stop player
StopThing(player);
# cut to comcar entering thru lower oil shed door
SetCameraFocus(2, os_cam1);
SetCameraSecondaryFocus(2, os_CamTarg1);
SetCurrentCamera(2);
# show comCar
ClearThingFlags(comCar, 0x80000);
# rest for a bit if necessary and then set thrust
Sleep(0.1);
SetThingThrust(comCar, '0.0 2.5 0.0');
# create first two oil shed commies
os_Com1 = CreateThing(tpl_Com1, ghost_Com1);
CaptureThing(os_Com1);
os_Com2 = CreateThing(tpl_Com2, ghost_Com2);
CaptureThing(os_Com2);
# prepare oil shed commies for cutscene
AISetCutsceneMode(os_Com1);
AISetCutsceneMode(os_Com2);
# open mine safety doors
SendMessage(os_mineDoors1, user0);
# play com entrance music
PlaySoundLocal(mus_ComEnt, 1.0, 0.0, 0x0, 0);
# send os_com1 running in after comCar
AISetMoveSpeed(os_com1, 4.0);
AISetLookThing(os_com1, os_comTempTarg);
AISetMoveThing(os_com1, os_comTempTarg, 0);
# send os_com2 running in after comCar.
AISetMoveSpeed(os_com2, 4.0);
AISetLookThing(os_com2, os_com2Targ);
AISetMoveThing(os_com2, os_comTempTarg, 1);
AISetMoveThing(os_com2, os_com2Targ, 1);
AISetLookThing(os_com1, os_com1Targ);
AISetMoveThing(os_com1, os_com1Targ, 1);
# close mine safety doors
SendMessage(os_mineDoors1, user1);
# give player some thurst
SetThingThrust(player, '0.0 3.0 0.0');
# slow down comCar
SetThingThrust(comCar, '0.0 2.0 0.0');
# rest for a bit if necessary
Sleep(0.5);
# cut to shot of player on upper
# track and comCar on lower track
SetCameraFocus(2, os_cam2);
SetCameraSecondaryFocus(2, os_CamTarg2);
SetCurrentCamera(2);
# destroy commies
DestroyThing(os_Com1);
DestroyThing(os_Com2);
}
else if(GetSenderRef() == trig_CamCut1)
{
# cut to camera at base of upper tracks to show
# player and comCar racing towards exit.
SetCameraFocus(2, os_Cam3);
SetCameraSecondaryFocus(2, os_CamTarg3);
SetCurrentCamera(2);
# speed up comCar
SetThingThrust(comCar, '0.0 3.0 0.0');
}
else if(GetSenderRef() == trig_CamCut2)
{
# cut to exit complex camera to show player and
# comCar bursting thru mine doors.
SetCameraFocus(2, ec_Cam1);
SetCameraSecondaryFocus(2, ec_CamTarg1);
SetCurrentCamera(2);
# speed up comCar
SetThingThrust(comCar, '0.0 5.0 0.0');
}
else if(GetSenderRef() == trig_CamCut3)
{
# cut to merge cam to show comCar zipping in
# front of player.
TeleportThing(comCar, teleport1);
Sleep(0.1);
# slow down comCar
SetThingThrust(comCar, '0.0 3.5 0.0');
# match player speed with comCar
SetThingThrust(player, '0.0 3.5 0.0');
# turn camReflec back on
SendMessage(camReflec, user1);
# restore player control
ClearActorFlags(player, 0x200000);
SetCurrentCamera(1);
EndCutscene();
done = 1;
Sleep(2.0);
CreateThing(tpl_Explode, chase_Exp1);
Sleep(2.0);
CreateThing(tpl_Explode, chase_Exp2);
}
}
}
return;
# ========================================================================================
end